#pragma once

// Define the <ref Action> type as a function pointer with
// none parameter and none return value
typedef void(*Action)(void);
#include <functional>

// Define the load action inteface, it should be implemented somewhere,
// where it's used to load practice actions
extern std::vector<const Action> loadActions();
extern std::vector<std::function<void (void)>> loadFuncActions();

// Imports the overall action header files
#include "Shape.h"
#include "StatusChecker.h"
#include "TypeConvertion.h"
#include "Welcome.h"
#include "PImpl.h"
#include "Lambda.h"
#include "RangFor.h"
#include "Container.h"
#include "SmartPointers.h"
#include "RvalueReference.h"